home *** CD-ROM | disk | FTP | other *** search
/ MASPC 1 / MASPC_1.iso / Demos / Demo DIV / DATA / PRG / TUTOR / TUTOR2.PRG < prev    next >
Encoding:
Text File  |  1997-11-27  |  2.8 KB  |  78 lines

  1.  
  2. //--------------------------------------------------------------------
  3. // Programa: Tutorial 2
  4. // Autor:    Daniel Navarro Medrano
  5. // Fecha:    20/10/97
  6. //--------------------------------------------------------------------
  7.  
  8. PROGRAM Tutorial_2;
  9.  
  10. BEGIN
  11.     // Carga el archivo que contiene todos los gráficos
  12.     load_fpg("tutorial\tutor2.fpg");
  13.     // Selecciona el número de imagenes por segundo
  14.     set_fps(24,0);
  15.     // Pone la pantalla de fondo
  16.     put_screen(0,41);
  17.     // Escribe un texto explicativo
  18.     write(0,160,2,1,"Pulse espacio para crear planetas");
  19.     // Crea un bucle infinito, ya que como no hay ningun
  20.     // proceso creado por ahora, el programa acabaria si no
  21.     // hubiera dicho bucle
  22.     LOOP
  23.         // Cada vez que se pulsa la tecla espacio se crea un
  24.         // proceso del tipo tierra
  25.         IF (key(_space)) tierra(); END
  26.         FRAME;
  27.     END
  28. END
  29.  
  30. //--------------------------------------------------------------------
  31. // Proceso tierra
  32. // Maneja las animaciones de la tierra
  33. //--------------------------------------------------------------------
  34.  
  35. PROCESS tierra();
  36.  
  37. PRIVATE
  38.     velocidad_x;         // Incremento en la coordenada horizontal
  39.     velocidad_y;         // Incremento en la coordenada vertical
  40.     velocidad_y_inicial; // Longitud del bote
  41.  
  42. BEGIN
  43.     // Crea el proceso en la mitad del lateral izquierdo
  44.     x=0; y=1800;
  45.     resolution=10;  // Hace que las coordenadas usen un decimal
  46.     // Inicia el incremento horizontal de 1 a 8 puntos
  47.     velocidad_x=rand(10,80);
  48.     // Reinicia la longitud del bote inicial entre 8 y 25 puntos
  49.     velocidad_y_inicial=rand(-80,-250);
  50.     // El incremento vertical es igual a la longitud del bote
  51.     velocidad_y=velocidad_y_inicial;
  52.     // Crea un bucle infinito
  53.     LOOP
  54.         // Crea un bucle que va pasando por todas las imagenes
  55.         // que componen la animacion que va de los codigos 0 a 40
  56.         FROM graph=1 TO 40;
  57.             // Mueve el proceso horizontalmente
  58.             x=x+velocidad_x;
  59.             // Si llega a algun extremo de la pantalla
  60.             IF (x<0 OR x>3200)
  61.                 // Cambia el signo del incremento y con ello
  62.                 // la direccion del movimiento
  63.                 velocidad_x=-velocidad_x;
  64.             END
  65.             // Mueve el proceso verticalmente
  66.             y=y+velocidad_y;
  67.             // Si la longitud del bote a llegado a su limite
  68.             IF (-velocidad_y<=velocidad_y_inicial)
  69.                 // Reinicia la longitud a la inicial
  70.                 velocidad_y=-velocidad_y;
  71.             ELSE
  72.                 // Va bajando el incremento en la longitud del bote
  73.                 velocidad_y=velocidad_y+20;
  74.             END
  75.             FRAME;  // Hace que el proceso aparezca en pantalla
  76.         END
  77.     END
  78. END